Java Technologies - অ্যাপাচি পিওআই (ওয়ার্ড)
183
183

Apache POI এর XWPFDocument ক্লাসের মাধ্যমে Microsoft Word (DOCX) ডকুমেন্টে Header (হেডার) এবং Footer (ফুটার) ম্যানেজ করা যায়। ডকুমেন্টে হেডার এবং ফুটার যুক্ত করা, সংশোধন করা এবং কনফিগার করা খুবই গুরুত্বপূর্ণ যখন আপনি প্রতিটি পৃষ্ঠায় কিছু নির্দিষ্ট তথ্য যেমন পেজ নাম্বার, তারিখ, লোগো বা শিরোনাম রাখতে চান।

১. Header যোগ করা

Word ডকুমেন্টে হেডার যোগ করার জন্য XWPFHeaderFooterPolicy ক্লাস ব্যবহার করতে হয়। এটি ডকুমেন্টের হেডার ও ফুটার পরিচালনা করার জন্য প্রয়োজনীয় পদ্ধতি সরবরাহ করে।

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddHeaderInWord {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // Header যোগ করা
        XWPFHeaderFooterPolicy policy = document.createHeaderFooterPolicy();
        XWPFParagraph headerParagraph = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        XWPFRun run = headerParagraph.createRun();
        run.setText("This is the Header Text");
        
        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_header.docx")) {
            document.write(out);
        }

        System.out.println("Header added to the Word document!");
    }
}

এখানে, createHeader() মেথডের মাধ্যমে ডিফল্ট হেডার তৈরি করা হয়েছে এবং createParagraph()createRun() ব্যবহার করে হেডারে টেক্সট যোগ করা হয়েছে।


২. Footer যোগ করা

Word ডকুমেন্টে ফুটার যোগ করার প্রক্রিয়াটি হেডারের মতোই। আপনি XWPFHeaderFooterPolicy ব্যবহার করে ফুটার তৈরি করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddFooterInWord {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // Footer যোগ করা
        XWPFHeaderFooterPolicy policy = document.createHeaderFooterPolicy();
        XWPFParagraph footerParagraph = policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        XWPFRun run = footerParagraph.createRun();
        run.setText("This is the Footer Text");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_footer.docx")) {
            document.write(out);
        }

        System.out.println("Footer added to the Word document!");
    }
}

এখানে, createFooter() মেথড ব্যবহার করে ফুটার তৈরি করা হয়েছে এবং createParagraph()createRun() ব্যবহার করে ফুটারে টেক্সট যোগ করা হয়েছে।


৩. Header এবং Footer এ পেজ নাম্বার যোগ করা

ডকুমেন্টের হেডার বা ফুটারে পেজ নাম্বার যোগ করা বেশ সাধারণ একটি চাহিদা। POI এর মাধ্যমে আপনি এটি খুব সহজেই করতে পারেন।

import org.apache.poi.xwpf.usermodel.*;
import org.apache.poi.xwpf.usermodel.XWPFHeaderFooterPolicy;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddPageNumberToHeaderFooter {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // Footer যোগ করা
        XWPFHeaderFooterPolicy policy = document.createHeaderFooterPolicy();
        XWPFParagraph footerParagraph = policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        
        // পেজ নাম্বার যোগ করা
        XWPFRun run = footerParagraph.createRun();
        run.setText("Page ");
        run.setBold(true);
        
        // পেজ নাম্বার (পেজ ১, ২, ৩, etc.)
        footerParagraph.createRun().setText("PAGE NUM");
        
        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_page_number.docx")) {
            document.write(out);
        }

        System.out.println("Page number added to the Word document!");
    }
}

এখানে, createFooter() মেথড ব্যবহার করে ফুটার তৈরি করা হয়েছে এবং createRun() মেথডের মাধ্যমে পেজ নাম্বার যোগ করা হয়েছে। পেজ নাম্বারের জন্য আপনি সাধারণত Field ব্যবহার করতে পারেন।


৪. Multiple Headers এবং Footers ব্যবহার করা

আপনি ডকুমেন্টের প্রতিটি সেকশনের জন্য আলাদা হেডার এবং ফুটার ব্যবহার করতে পারেন। উদাহরণস্বরূপ, প্রথম পৃষ্ঠায় আলাদা হেডার এবং দ্বিতীয় পৃষ্ঠায় আলাদা ফুটার দেওয়া যেতে পারে।

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class MultipleHeadersFooters {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();
        
        // প্রথম পৃষ্ঠার জন্য Header
        XWPFHeaderFooterPolicy policy = document.createHeaderFooterPolicy();
        XWPFParagraph headerParagraph = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        XWPFRun run = headerParagraph.createRun();
        run.setText("This is the Header for the first page");

        // প্রথম পৃষ্ঠার জন্য Footer
        XWPFParagraph footerParagraph = policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        footerParagraph.createRun().setText("Footer for the first page");

        // নতুন পৃষ্ঠা শুরু
        document.createParagraph();
        
        // দ্বিতীয় পৃষ্ঠার জন্য Header
        headerParagraph = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        run = headerParagraph.createRun();
        run.setText("This is the Header for the second page");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("document_with_multiple_headers.docx")) {
            document.write(out);
        }

        System.out.println("Multiple Headers and Footers added to the Word document!");
    }
}

এখানে, createHeader() এবং createFooter() ব্যবহার করে প্রথম পৃষ্ঠা এবং দ্বিতীয় পৃষ্ঠার জন্য আলাদা হেডার এবং ফুটার তৈরি করা হয়েছে।


৫. Header এবং Footer এর স্টাইল এবং ফরম্যাটিং

Header এবং Footer এর টেক্সটের স্টাইল, ফন্ট সাইজ, ফন্ট রঙ এবং alignment কাস্টমাইজ করা যায়।

import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;

public class HeaderFooterStyling {
    public static void main(String[] args) throws IOException {
        XWPFDocument document = new XWPFDocument();

        // Header যোগ করা এবং স্টাইলিং
        XWPFHeaderFooterPolicy policy = document.createHeaderFooterPolicy();
        XWPFParagraph headerParagraph = policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        XWPFRun run = headerParagraph.createRun();
        run.setText("Styled Header Text");
        run.setFontSize(16);
        run.setBold(true);
        headerParagraph.setAlignment(ParagraphAlignment.CENTER);

        // Footer যোগ করা এবং স্টাইলিং
        XWPFParagraph footerParagraph = policy.createFooter(XWPFHeaderFooterPolicy.DEFAULT).createParagraph();
        XWPFRun footerRun = footerParagraph.createRun();
        footerRun.setText("Styled Footer Text");
        footerRun.setFontSize(14);
        footerRun.setItalic(true);
        footerParagraph.setAlignment(ParagraphAlignment.RIGHT);

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("styled_header_footer.docx")) {
            document.write(out);
        }

        System.out.println("Styled Header and Footer added to the Word document!");
    }
}

এখানে, setFontSize(), setBold(), setItalic(), এবং setAlignment() মেথড ব্যবহার করে হেডার এবং ফুটারের টেক্সট স্টাইল করা হয়েছে।


সারাংশ

XWPFDocument ক্লাসের মাধ্যমে আপনি Word ডকুমেন্টে হেডার এবং ফুটার সহজেই পরিচালনা করতে পারেন। XWPFHeaderFooterPolicy ব্যবহার করে আপনি ডকুমেন্টে হেডার এবং ফুটার যুক্ত করতে পারেন, তাদের স্টাইল কাস্টমাইজ করতে পারেন এবং বিভিন্ন সেকশনের জন্য আলাদা হেডার এবং ফুটার সেট করতে পারেন। এছাড়াও, পেজ নাম্বার যোগ, টেক্সট ফরম্যাটিং, এবং স্টাইলিং করা সম্ভব, যা ডকুমেন্টের পেশাগত মান বাড়াতে সহায়ক।

common.content_added_by
163
163

Apache POI লাইব্রেরি ব্যবহার করে আপনি সহজেই Word ডকুমেন্টে Header এবং Footer যোগ করতে পারেন। এটি আপনাকে ডকুমেন্টের শীর্ষ এবং তলদেশে টেক্সট, চিত্র, এবং অন্যান্য উপাদান যুক্ত করার অনুমতি দেয়। XWPFHeaderFooterPolicy ক্লাসটি ব্যবহার করে header এবং footer এর কাস্টমাইজেশন করা সম্ভব।

নিম্নলিখিত উদাহরণে দেখানো হচ্ছে কিভাবে XWPFDocument ক্লাস ব্যবহার করে Word ডকুমেন্টে Header এবং Footer যোগ করা যায়।


1. Word ডকুমেন্টে Header এবং Footer যোগ করা

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFHeaderFooterPolicy;
import java.io.FileOutputStream;
import java.io.IOException;

public class AddHeaderFooterToWord {
    public static void main(String[] args) throws IOException {
        // নতুন XWPFDocument (Word ডকুমেন্ট) তৈরি
        XWPFDocument document = new XWPFDocument();

        // Header এবং Footer Policy তৈরি করা
        XWPFHeaderFooterPolicy headerFooterPolicy = document.createHeaderFooterPolicy();

        // Header যোগ করা
        XWPFParagraph headerParagraph = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun headerRun = headerParagraph.createRun();
        headerRun.setText("এই হল ডকুমেন্টের Header");

        // Footer যোগ করা
        XWPFParagraph footerParagraph = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun footerRun = footerParagraph.createRun();
        footerRun.setText("এই হল ডকুমেন্টের Footer");

        // Word ডকুমেন্টে কিছু সাধারণ টেক্সট যোগ করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("এটি ডকুমেন্টের মূল বিষয়বস্তু।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("word_with_header_footer.docx")) {
            document.write(out);
        }

        System.out.println("Header এবং Footer সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • createHeaderFooterPolicy(): এই মেথডটি একটি XWPFHeaderFooterPolicy অবজেক্ট তৈরি করে, যা Header এবং Footer এর কাস্টমাইজেশন পরিচালনা করে।
  • createHeader(): এটি ডকুমেন্টের Header তৈরি করে। এখানে DEFAULT মানে হল যে এটি ডকুমেন্টের প্রথম পৃষ্ঠার জন্য ব্যবহার হবে।
  • createFooter(): এটি ডকুমেন্টের Footer তৈরি করে, যেটি Header এর মতোই কাজ করবে।
  • createRun(): এটি Header এবং Footer এর মধ্যে টেক্সট যোগ করার জন্য ব্যবহৃত হয়।

এই কোডটি চালানোর পর, word_with_header_footer.docx নামক একটি Word ডকুমেন্ট তৈরি হবে, যার একটি Header এবং একটি Footer থাকবে।


2. Header এবং Footer এর ফরম্যাট পরিবর্তন করা

আপনি Header এবং Footer তে টেক্সটের ফরম্যাট পরিবর্তন করতে পারেন, যেমন ফন্ট সাইজ, স্টাইল (বোল্ড, ইটালিক), এবং ফন্ট ফ্যামিলি।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFHeaderFooterPolicy;
import java.io.FileOutputStream;
import java.io.IOException;

public class FormatHeaderFooterInWord {
    public static void main(String[] args) throws IOException {
        // নতুন XWPFDocument (Word ডকুমেন্ট) তৈরি
        XWPFDocument document = new XWPFDocument();

        // Header এবং Footer Policy তৈরি করা
        XWPFHeaderFooterPolicy headerFooterPolicy = document.createHeaderFooterPolicy();

        // Header তৈরি করা এবং টেক্সট ফরম্যাটিং
        XWPFParagraph headerParagraph = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun headerRun = headerParagraph.createRun();
        headerRun.setText("এই হল Header");
        headerRun.setBold(true); // বোল্ড
        headerRun.setFontSize(14); // ফন্ট সাইজ ১৪
        headerRun.setFontFamily("Arial"); // Arial ফন্ট

        // Footer তৈরি করা এবং টেক্সট ফরম্যাটিং
        XWPFParagraph footerParagraph = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun footerRun = footerParagraph.createRun();
        footerRun.setText("এই হল Footer");
        footerRun.setItalic(true); // ইটালিক
        footerRun.setFontSize(12); // ফন্ট সাইজ ১২
        footerRun.setFontFamily("Times New Roman"); // Times New Roman ফন্ট

        // Word ডকুমেন্টে কিছু সাধারণ টেক্সট যোগ করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("এটি ডকুমেন্টের মূল বিষয়বস্তু।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("formatted_word_with_header_footer.docx")) {
            document.write(out);
        }

        System.out.println("ফরম্যাট করা Header এবং Footer সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • setBold(true): Header এবং Footer এর টেক্সটকে বোল্ড করে।
  • setItalic(true): Footer এর টেক্সটকে ইটালিক করে।
  • setFontSize(14): Header এর ফন্ট সাইজ ১৪ পয়েন্টে সেট করে।
  • setFontFamily("Arial"): Header এর ফন্ট ফ্যামিলি Arial সেট করে।
  • setFontSize(12): Footer এর ফন্ট সাইজ ১২ পয়েন্টে সেট করে।
  • setFontFamily("Times New Roman"): Footer এর ফন্ট ফ্যামিলি Times New Roman সেট করে।

এই কোডটি চালানোর পর, একটি Word ডকুমেন্ট তৈরি হবে যেখানে Header এবং Footer ফরম্যাটেড থাকবে।


3. Header এবং Footer এর পজিশন কাস্টমাইজ করা

আপনি Header এবং Footer এর পজিশনও কাস্টমাইজ করতে পারেন। উদাহরণস্বরূপ, আপনি left aligned, center aligned, বা right aligned পজিশনিং ব্যবহার করতে পারেন।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.XWPFAlignment;
import java.io.FileOutputStream;
import java.io.IOException;

public class AlignHeaderFooterInWord {
    public static void main(String[] args) throws IOException {
        // নতুন XWPFDocument (Word ডকুমেন্ট) তৈরি
        XWPFDocument document = new XWPFDocument();

        // Header এবং Footer Policy তৈরি করা
        XWPFHeaderFooterPolicy headerFooterPolicy = document.createHeaderFooterPolicy();

        // Header তৈরি করা এবং টেক্সট আলাইন করা
        XWPFParagraph headerParagraph = headerFooterPolicy.createHeader(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun headerRun = headerParagraph.createRun();
        headerRun.setText("এই হল Header");
        headerParagraph.setAlignment(XWPFAlignment.CENTER); // সেন্টারে আলাইন করা

        // Footer তৈরি করা এবং টেক্সট আলাইন করা
        XWPFParagraph footerParagraph = headerFooterPolicy.createFooter(XWPFHeaderFooterPolicy.DEFAULT);
        XWPFRun footerRun = footerParagraph.createRun();
        footerRun.setText("এই হল Footer");
        footerParagraph.setAlignment(XWPFAlignment.RIGHT); // রাইটে আলাইন করা

        // Word ডকুমেন্টে কিছু সাধারণ টেক্সট যোগ করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText("এটি ডকুমেন্টের মূল বিষয়বস্তু।");

        // Word ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("aligned_word_with_header_footer.docx")) {
            document.write(out);
        }

        System.out.println("আলাইন করা Header এবং Footer সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • setAlignment(XWPFAlignment.CENTER): Header টেক্সটকে সেন্টারে আলাইন করে।
  • setAlignment(XWPFAlignment.RIGHT): Footer টেক্সটকে ডানদিকে (right) আলাইন করে।

এই কোডটির মাধ্যমে আপনি **Header

** এবং Footer কে আপনার পছন্দমত center বা right আলাইন করতে পারবেন।


সারাংশ

Apache POI ব্যবহার করে আপনি সহজে Word ডকুমেন্টে Header এবং Footer যোগ করতে পারেন এবং সেগুলির ফরম্যাট, পজিশন পরিবর্তন করতে পারেন। XWPFHeaderFooterPolicy ক্লাসের সাহায্যে আপনি header এবং footer এর কাস্টমাইজেশন এবং টেক্সট ফরম্যাটিং সম্পন্ন করতে পারবেন। এই ক্ষমতা আপনাকে প্রোগ্রামেটিকভাবে Word ডকুমেন্টের শীর্ষ এবং তলদেশে প্রয়োজনীয় তথ্য যোগ করতে সক্ষম করবে।


common.content_added_by

বিভিন্ন পেজে ভিন্ন Header/Footer তৈরি করা

134
134

Apache POI ব্যবহার করে আপনি একটি Word ডকুমেন্টে বিভিন্ন পেজে ভিন্ন Header এবং Footer তৈরি করতে পারেন। সাধারণত, Word ডকুমেন্টের সমস্ত পৃষ্ঠায় একটি সাধারণ হেডার ও ফুটার থাকে, তবে আপনি প্রয়োজন অনুযায়ী প্রতিটি পেজের জন্য আলাদা হেডার ও ফুটার কনফিগার করতে পারবেন। এটি বিশেষত তখন প্রয়োজন হয় যখন আপনার ডকুমেন্টে প্রথম পৃষ্ঠার হেডার/ফুটার অন্য পৃষ্ঠার থেকে ভিন্ন থাকতে চায় বা নির্দিষ্ট পাতায় কোনো বিশেষ তথ্য প্রদর্শন করতে চান।

Apache POI এ এই ধরনের কাস্টমাইজেশন করতে হলে XWPFHeader এবং XWPFFooter ব্যবহার করতে হয়। এছাড়াও, sections এর মাধ্যমে পেজের বিভিন্ন অংশে আলাদা হেডার ও ফুটার সেট করা যায়।


পেজের জন্য আলাদা Header/Footer তৈরি করা

প্রথমত, Word ডকুমেন্টে Header এবং Footer তৈরি করতে হয়। তারপর, পেজের নির্দিষ্ট অংশের জন্য এগুলিকে কাস্টমাইজ করতে হবে।

উদাহরণ: বিভিন্ন পেজে ভিন্ন Header/Footer তৈরি করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.xwpf.usermodel.XWPFHeader;
import org.apache.poi.xwpf.usermodel.XWPFFooter;

import java.io.FileOutputStream;
import java.io.IOException;

public class DifferentHeaderFooterExample {
    public static void main(String[] args) throws IOException {
        // নতুন ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // প্রথম পৃষ্ঠার জন্য হেডার তৈরি করা
        XWPFHeader header1 = document.createHeader(XWPFHeader.DEFAULT);
        XWPFParagraph headerParagraph1 = header1.createParagraph();
        XWPFRun headerRun1 = headerParagraph1.createRun();
        headerRun1.setText("Header for the First Page");

        // প্রথম পৃষ্ঠার জন্য ফুটার তৈরি করা
        XWPFFooter footer1 = document.createFooter(XWPFFooter.DEFAULT);
        XWPFParagraph footerParagraph1 = footer1.createParagraph();
        XWPFRun footerRun1 = footerParagraph1.createRun();
        footerRun1.setText("Footer for the First Page");

        // দ্বিতীয় পৃষ্ঠার জন্য হেডার তৈরি করা
        XWPFHeader header2 = document.createHeader(XWPFHeader.FIRST);
        XWPFParagraph headerParagraph2 = header2.createParagraph();
        XWPFRun headerRun2 = headerParagraph2.createRun();
        headerRun2.setText("Header for the Second Page");

        // দ্বিতীয় পৃষ্ঠার জন্য ফুটার তৈরি করা
        XWPFFooter footer2 = document.createFooter(XWPFFooter.FIRST);
        XWPFParagraph footerParagraph2 = footer2.createParagraph();
        XWPFRun footerRun2 = footerParagraph2.createRun();
        footerRun2.setText("Footer for the Second Page");

        // ডকুমেন্টে কিছু কন্টেন্ট যোগ করা (পেজ ব্রেক)
        XWPFParagraph paragraph1 = document.createParagraph();
        XWPFRun run1 = paragraph1.createRun();
        run1.setText("This is the content of the first page.");
        document.createParagraph().createRun().setText("\n\n\n"); // স্পেস অ্যাড করা

        // দ্বিতীয় পৃষ্ঠায় গিয়ে কিছু কন্টেন্ট যোগ করা
        XWPFParagraph paragraph2 = document.createParagraph();
        XWPFRun run2 = paragraph2.createRun();
        run2.setText("This is the content of the second page.");

        // ডকুমেন্ট সংরক্ষণ
        try (FileOutputStream out = new FileOutputStream("DocumentWithDifferentHeadersFooters.docx")) {
            document.write(out);
        }

        System.out.println("Word ডকুমেন্টে ভিন্ন Header/Footer সফলভাবে তৈরি করা হয়েছে!");
    }
}

কোড ব্যাখ্যা:

  • createHeader(XWPFHeader.FIRST) এবং createFooter(XWPFFooter.FIRST) ব্যবহার করা হয়েছে দ্বিতীয় পৃষ্ঠার জন্য আলাদা হেডার এবং ফুটার তৈরি করতে। XWPFHeader.DEFAULT এবং XWPFFooter.DEFAULT প্রথম পৃষ্ঠার জন্য ব্যবহৃত হয়েছে।
  • createParagraph() এবং createRun() ব্যবহার করে হেডার এবং ফুটারে টেক্সট যোগ করা হয়েছে।
  • document.createParagraph().createRun().setText("\n\n\n") ব্যবহার করা হয়েছে পেজ ব্রেক সিমুলেট করার জন্য, যাতে দ্বিতীয় পৃষ্ঠায় চলে যায়।

পেজ ব্রেক ব্যবহার:

POI-তে XWPFDocument-এ পেজ ব্রেক করার জন্য সাধারণত createParagraph() এর মাধ্যমে স্পেস তৈরি করতে হয় অথবা আপনার টেক্সটের মধ্যে \n ব্যবহার করে নতুন লাইন যোগ করতে হয়। একাধিক প্যারাগ্রাফ এবং সেগুলোর মধ্যে স্পেস অ্যাড করে আপনি একটি নতুন পৃষ্ঠায় চলে যেতে পারেন।


পেজে ভিন্ন Header/Footer সেট করা

Apache POI আপনাকে পেজের বিভিন্ন সেকশনের জন্য আলাদা হেডার এবং ফুটার সেট করার ক্ষমতা দেয়। আপনি sections ব্যবহার করে প্রতিটি পৃষ্ঠার জন্য আলাদা header এবং footer কনফিগার করতে পারবেন।

পেজ সেকশনের ভিত্তিতে Header/Footer কাস্টমাইজ করা:

POI তে XWPFSection ব্যবহার করে পেজ সেকশন নির্ধারণ করা যায়, এবং সেকশনের ভিত্তিতে আলাদা হেডার এবং ফুটার তৈরি করা যায়। এর জন্য একটি সেকশনে হেডার এবং ফুটার সেট করতে হবে এবং অন্য সেকশনে আবার আলাদা হেডার/ফুটার তৈরি করতে হবে।


সারাংশ

Apache POI ব্যবহার করে আপনি Microsoft Word ডকুমেন্টে বিভিন্ন পেজের জন্য আলাদা header এবং footer তৈরি করতে পারেন। এটি বিশেষত তখন প্রয়োজন হয় যখন আপনার ডকুমেন্টে প্রথম পৃষ্ঠার হেডার/ফুটার অন্য পৃষ্ঠার থেকে ভিন্ন রাখতে চান। XWPFHeader এবং XWPFFooter এর মাধ্যমে আপনি সহজেই প্রতিটি পেজ বা সেকশনের জন্য আলাদা কাস্টম হেডার এবং ফুটার কনফিগার করতে পারেন। createHeader() এবং createFooter() এর মাধ্যমে আপনি এই কাস্টমাইজেশন করতে পারবেন।

common.content_added_by

পেজ নম্বর এবং Date/Time যোগ করা

135
135

অ্যাপাচি পিওআই (Apache POI) ব্যবহার করে Word ডকুমেন্টে পেজ নম্বর এবং Date/Time যোগ করা সম্ভব। এটি XWPF API এর মাধ্যমে করা যায়। পেজ নম্বর সাধারণত ডকুমেন্টের ফুটারে (footer) বা হেডারে (header) থাকে, এবং Date/Time টেক্সট হিসেবে ডকুমেন্টে বিভিন্ন স্থানে যোগ করা যেতে পারে।


পেজ নম্বর যোগ করা (Page Numbering)

পেজ নম্বর যোগ করতে, আপনি XWPFHeader বা XWPFFooter ক্লাস ব্যবহার করতে পারেন। পেজ নম্বর সাধারণত ফুটার অথবা হেডার এ থাকে, এবং এটি XWPFParagraphCTText এবং CTPageNumber এর মাধ্যমে সেট করা হয়।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;
import org.apache.xmlbeans.XmlCursor;

import java.io.*;

public class AddPageNumber {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // ফুটার (Footer) তৈরি করা
        XWPFFooter footer = document.createFooter(XWPFHeaderFooterPolicy.DEFAULT);

        // ফুটারে একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = footer.createParagraph();
        paragraph.setAlignment(ParagraphAlignment.CENTER); // পেজ নম্বর কেন্দ্রে রাখার জন্য

        // পেজ নম্বর সেট করা
        XWPFRun run = paragraph.createRun();
        run.setText("Page ");
        run.setBold(true);

        // পেজ নম্বর সন্নিবেশ করা
        run = paragraph.createRun();
        run.setText("<w:fldSimple w:instr=\"PAGE\">");
        run.setText("<w:t>1</w:t>");

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("word_with_page_number.docx")) {
            document.write(out);
        }

        System.out.println("পেজ নম্বর সফলভাবে যোগ করা হয়েছে!");
    }
}

কোডের ব্যাখ্যা:

  1. ফুটার তৈরি: createFooter() মেথড ব্যবহার করে একটি ফুটার তৈরি করা হয়।
  2. প্যারাগ্রাফ তৈরি: createParagraph() মেথড দিয়ে একটি প্যারাগ্রাফ তৈরি করা হয়।
  3. পেজ নম্বর যোগ করা: XWPFRun ব্যবহার করে পেজ নম্বর এবং পেজ নম্বর ফিল্ড কোড সেট করা হয়।
  4. ডকুমেন্ট সংরক্ষণ: ডকুমেন্টটি word_with_page_number.docx নামে সেভ করা হয়।

Date/Time যোগ করা (Adding Date/Time)

ডকুমেন্টে Date/Time যোগ করার জন্য আপনি XWPFParagraph এবং XWPFRun ব্যবহার করতে পারেন। আপনি যেকোনো ফরম্যাটে বর্তমান তারিখ এবং সময় সেট করতে পারেন।

কোড উদাহরণ:

import org.apache.poi.xwpf.usermodel.*;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class AddDateTime {
    public static void main(String[] args) throws IOException {
        // নতুন Word ডকুমেন্ট তৈরি করা
        XWPFDocument document = new XWPFDocument();

        // একটি প্যারাগ্রাফ তৈরি করা
        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();

        // বর্তমান তারিখ এবং সময় পেতে
        SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
        String currentDateTime = sdf.format(new Date());

        // তারিখ এবং সময় প্যারাগ্রাফে যোগ করা
        run.setText("Current Date and Time: " + currentDateTime);

        // ডকুমেন্ট সেভ করা
        try (FileOutputStream out = new FileOutputStream("word_with_date_time.docx")) {
            document.write(out);
        }

        System.out.println("Date/Time সফলভাবে যোগ করা হয়েছে!");
    }
}

কোডের ব্যাখ্যা:

  1. প্যারাগ্রাফ তৈরি: createParagraph() মেথড ব্যবহার করে একটি নতুন প্যারাগ্রাফ তৈরি করা হয়।
  2. Date/Time ফরম্যাটিং: SimpleDateFormat ব্যবহার করে বর্তমান তারিখ এবং সময় একটি নির্দিষ্ট ফরম্যাটে পাওয়া যায়।
  3. Date/Time যোগ করা: XWPFRun এর মাধ্যমে প্যারাগ্রাফে বর্তমান তারিখ এবং সময় যোগ করা হয়।
  4. ডকুমেন্ট সংরক্ষণ: ডকুমেন্টটি word_with_date_time.docx নামে সেভ করা হয়।

সারাংশ

Apache POI এর XWPF API ব্যবহার করে Word ডকুমেন্টে পেজ নম্বর এবং Date/Time যোগ করা সম্ভব। পেজ নম্বর সাধারণত ডকুমেন্টের হেডার বা ফুটার এ থাকে, এবং Date/Time ডকুমেন্টের যেকোনো স্থানে প্রদর্শিত হতে পারে। এই প্রক্রিয়াগুলির মাধ্যমে আপনি আপনার ডকুমেন্টটিকে আরও কার্যকরী এবং প্রফেশনাল করতে পারেন।

common.content_added_by

কাস্টম লোগো বা ইমেজ ব্যবহার করা

142
142

Apache POI লাইব্রেরি ব্যবহার করে Microsoft Word ডকুমেন্টে কাস্টম লোগো বা ইমেজ যোগ করা সহজ। এটি XWPF (XML Word Processing Format) ক্লাস ব্যবহার করে করা যায়, যা .docx ফাইল ফরম্যাটের জন্য ডিজাইন করা হয়েছে। ইমেজ যোগ করার জন্য XWPFRun এবং XWPFPictureData ব্যবহার করা হয়।

ইমেজ যোগ করার পদক্ষেপ

  1. ডকুমেন্ট তৈরি বা লোড করা: প্রথমে একটি .docx ফাইল তৈরি বা লোড করতে হবে।
  2. প্যারাগ্রাফ তৈরি করা: ডকুমেন্টে নতুন প্যারাগ্রাফ তৈরি করা, যেখানে ইমেজ যোগ করা হবে।
  3. ইমেজ ফাইল যোগ করা: কাস্টম ইমেজ (যেমন লোগো) যোগ করতে, XWPFRun এবং XWPFPictureData ব্যবহার করা হয়।

উদাহরণ ১: কাস্টম লোগো ইমেজ যোগ করা

import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.util.Units;
import java.io.*;

public class AddLogoExample {
    public static void main(String[] args) {
        try {
            // নতুন ডকুমেন্ট তৈরি
            XWPFDocument document = new XWPFDocument();

            // নতুন প্যারাগ্রাফ তৈরি
            XWPFParagraph paragraph = document.createParagraph();
            
            // রুন (Run) তৈরি
            XWPFRun run = paragraph.createRun();
            
            // ইমেজ যোগ করা (যেমন: লোগো)
            String imagePath = "path_to_logo.png";  // আপনার ইমেজের পাথ দিন
            FileInputStream imageStream = new FileInputStream(imagePath);
            
            // ইমেজ সন্নিবেশ করা
            run.addPicture(imageStream, XWPFDocument.PICTURE_TYPE_PNG, imagePath, Units.toEMU(100), Units.toEMU(100));
            
            // ইমেজ যুক্ত করার পর টেক্সট যোগ করা
            run.setText("এটি একটি কাস্টম লোগো ইমেজ!");

            // ডকুমেন্ট সেভ করা
            try (FileOutputStream fos = new FileOutputStream("DocumentWithLogo.docx")) {
                document.write(fos);
            }

            System.out.println("ইমেজ সফলভাবে ডকুমেন্টে যুক্ত করা হয়েছে!");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

কোডের ব্যাখ্যা

  1. XWPFDocument: একটি নতুন Word ডকুমেন্ট তৈরি করা হয়।
  2. XWPFParagraph: ডকুমেন্টে একটি নতুন প্যারাগ্রাফ তৈরি করা, যেখানে ইমেজ এবং টেক্সট যোগ করা হবে।
  3. XWPFRun: একটি রুন (Run) তৈরি করা হয়, যা ইমেজ এবং টেক্সটের ফরম্যাট নিয়ন্ত্রণ করে।
  4. addPicture(): ইমেজ ফাইলটি ডকুমেন্টে যোগ করতে ব্যবহার করা হয়। এখানে ইমেজের পাথ, ইমেজ টাইপ এবং সাইজ নির্ধারণ করা হয়। Units.toEMU(100) মাধ্যমে ইমেজের সাইজকে EMU (English Metric Units) এ কনভার্ট করা হয়।
  5. ফাইল সেভ করা: ডকুমেন্টটি সেভ করা হয় একটি নতুন .docx ফাইল হিসেবে।

ইমেজের সাইজ কাস্টমাইজ করা

  • Units.toEMU() ব্যবহার করে ইমেজের সাইজ নির্ধারণ করা হয়। এটি EMU (English Metric Units) হিসেবে মাপ নেয়, যেটি Word ফরম্যাটে ব্যবহৃত একটি ইউনিট।
  • আপনি ইমেজের উচ্চতা এবং প্রস্থ কাস্টমাইজ করতে পারেন, যেমন:
run.addPicture(imageStream, XWPFDocument.PICTURE_TYPE_PNG, imagePath, Units.toEMU(200), Units.toEMU(100));

এখানে ইমেজের প্রস্থ 200 EMU এবং উচ্চতা 100 EMU নির্ধারণ করা হয়েছে।

বিভিন্ন ধরনের ইমেজ ফরম্যাট

Apache POI বিভিন্ন ধরনের ইমেজ ফরম্যাট সমর্থন করে, যেমন:

  • JPEG: XWPFDocument.PICTURE_TYPE_JPEG
  • PNG: XWPFDocument.PICTURE_TYPE_PNG
  • GIF: XWPFDocument.PICTURE_TYPE_GIF

উদাহরণ ২: বিভিন্ন ইমেজ ফরম্যাটের সমর্থন

run.addPicture(imageStream, XWPFDocument.PICTURE_TYPE_JPEG, "path_to_image.jpg", Units.toEMU(150), Units.toEMU(150));

এখানে JPEG ফরম্যাটের ইমেজ যোগ করা হচ্ছে।

Apache POI লাইব্রেরি ব্যবহার করে Word ডকুমেন্টে কাস্টম লোগো বা ইমেজ যোগ করা অত্যন্ত সহজ। আপনি সহজেই XWPFRun এবং addPicture() পদ্ধতি ব্যবহার করে JPEG, PNG, এবং GIF ইমেজ ফরম্যাটগুলির মাধ্যমে ডকুমেন্টে ইমেজ অন্তর্ভুক্ত করতে পারবেন। এটি ডকুমেন্টের ডিজাইন এবং কাস্টমাইজেশনের জন্য একটি অত্যন্ত কার্যকরী পদ্ধতি।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion